package cn.ljh.demo;

import org.apache.rocketmq.spring.core.RocketMQListener;
import org.springframework.stereotype.Component;

/**
 * 简单的一个消费示例，使用 RocketMQMessageListener 注解进行监听
 *
 * @author lujinhong
 * @since 2025-05-29
 */

//@Component
// 我要自己自定义一个监听类，不用这个注解，那么这个类就变成了普通的监听器类
//@RocketMQMessageListener(topic = "LjhTopic01", consumerGroup = "ljh_group", selectorExpression = "Tag01")
public class Consumer01 implements RocketMQListener<String> {

    private int i = 0;

    /**
     * RocketMQ 消息监听的回调方法,收到消息后会执行这里的逻辑
     * 自动提交消费确认：只要 onMessage() 不抛异常，RocketMQ 就认为你已经成功消费消息了，Broker 会标记该消息为已消费。
     */
    @Override
    public void onMessage(String str) {
        i++;
        System.err.println("第【 " + i + " 】次重试消费：消息内容是：" + str);
        // 假设消费消息失败
        throw new RuntimeException("假设消息消费失败！");
    }
}
